Peer-to-Peer (P2P) streaming applications use diverse connectivity between participants in a network and cumulative bandwidth of network participants rather than conventional centralized resources where a relatively low number of servers provide the core value to a service or application. P2P applications are typically used for sharing content files containing content such as audio, video, and/or digital data, for example, over the internet. In addition, P2P streaming applications have been widely used for scalable streaming of live multimedia over the internet. In P2P streaming, participating peers form an overlay and deliver the content on top of the overlay.
Conventional live P2P streaming applications use random connected overlays among participating peers. For example, FIG. 1 illustrates conventional overlays that include random connections. Referring to FIG. 1, a conventional system 100 within a P2P streaming application may include peers 105 in an Internet Service Provider (ISP) network A (ISP A) and an ISP network B (ISP B) that are randomly connected. For example, one of the peers 105 in the ISP A 110 may connect to another peer in the ISP A 110 (e.g., internal) or connect to one of the peers 105 in ISP B 120 (external). Because the connections among peers 105 are random, the connections may be either internal connections or inter-ISP connections (or external connections). The terms inter-ISP connections and external connections are inter-changeable terms. However, costs for inter-ISP connections are usually greater than internal connections. Because the random overlay system uses a significant amount of inter-ISP connections, the cost for implementing such a system may be relatively high.
To reduce inter-ISP connections among peers 105, conventional approaches have focused on localization of overlay connectivity within each ISP network. P2P localization enables individual ISP networks to control the selection of neighbor peers while considering their policies and business relationships with other ISP networks in order to manage and reduce traffic over inter-ISP connections.
One type of method for localization uses an oracle that directs the local peer to use a selected number of peers. For example, a new local peer may contact a P2P bootstrap node of the P2P application to receive a list of candidate peers (or potential neighbors) participating in the underlay. Next, the local peer transmits the list of candidate peers to an oracle associated with the local peer. The oracle applies connection preferences by sorting the list of candidate peers and returns the sorted list back to the local peer. The local peer uses the sorted list for initiating connections to preferred neighbors. In this method, the ISP has some control over which peers the local peer is attempting to connect. However, localizing P2P traffic potentially can affect the performance of P2P applications by decreasing the diversity of content in each neighborhood of the local peer.
Another type of localization uses file swarming mechanisms over localized overlays. In the swarm-based approach, video data is divided into multiple sub-streams, and the participating peers are organized into a random mesh overlay, where swarming is used for the delivery of each sub-stream. A parent-child relationship exists between connected peers. Each peer as a parent notifies children peers of the availability of sub-streams. To effectively utilize access link bandwidth of participating peers, incoming and outgoing degrees of peers should be proportional to the incoming and outgoing bandwidth. This implies that all connections have approximately the same average bandwidth. Swarming content delivery combines push content reporting by parent peers with pull content requesting by children peers. Each peer simultaneously receives content from all of its parent peers and provides content to all of its children peers. Parent peers progressively report the availability of their new sub-streams to all of the children peers. Given the available sub-streams among the parent peers, each peer periodically invokes a block scheduling scheme to determine which blocks should be pulled from each parent peer in order to maximize the utilization of bandwidth and the delivered quality.
However, conventional embodiments of the swarm-based approach take advantage of the relaxed timing constrains of file delivery applications, which have a single requirement only, that is, the delivery of all segments. As a result, studies have demonstrated that playout of live video streams is dramatically increased and the claim of “live streaming” becomes questionable (e.g., tens of seconds, even minutes for larger swarms).